A programmable filter (also known as a ‘convolver’) may perform convolution between a signal and an impulse response of that programmable filter. A desired impulse response of a programmable filter is one that performs a desired convolution. It is possible to generate a desired impulse response, and to perform the mathematical operations involved in convolution (such as integration, multiplication, time-shift etc.) with physical operators (integrators, multipliers etc.).
Some conventional programmable filters may comprise two or more branches each having substantially the same impulse response. The branches may involve physical operators that perform similar operations with a delay in time between the branches.